#pragma once

#include <boost/random.hpp>

namespace	Z	{

//------------------------------------------------------------------------------------------------------------------------
template<typename Distribution>
class	RandomNumberGenerator
{
private:
	typedef	typename	Distribution::input_type		input_type;
public:
	RandomNumberGenerator();
	~RandomNumberGenerator();
	input_type	rand(input_type min, input_type max);
private:
	typedef	boost::random::mt11213b	Engine;
	typedef	boost::random::variate_generator<Engine, Distribution>	VariateGenerator;
	VariateGenerator	mVariateGenerator;
};

}

#include "ZRandomNumberGenerator.inl"